Nintendo Switch File Formats · RetroReversing | 您所在的位置:网站首页 › dump game › Nintendo Switch File Formats · RetroReversing |
Nintendo Switch File Formats
Edit on Github
| Updated:
5th September 2020
The Nintendo Switch development scene has introduced a lot of new file formats, some completely new and others are extensions of what had been used on the Wii and Wii U. Full Game FilesFull Game files come in two standard formats depending if they are game cartridges (XCI) or EShop downloads (NSP). XCI - NX Cart ImagesThe XCI format was created as a way to dump entire game cartridges to a single file. XCI files are encrypted using the firmware specific master key and so can be run on any switch, just like game cartridges 1. Creating XCI Files NXDumpTool - Dump your Games to XCIThe recommended way of creating XCI files is to use the NX Dump Tool available on GitHub You can also dump game cartridges if you are using SX OS using the homebrew app SX Dumper. Extracting XCI filesAs XCI files are just a container for individual NCA files you can extract the contents of an XCI file with a tool called hactool. Here is an example ./hactool --outdir ./output -x -t xci yourgame.xciThis will create 4 folders in the output directory: For more information about the extracted files see the section on NCA files. Cutting XCI filesAs XCI files are a 1:1 copy of the data stored on the eMMC chip of a game cartridge it can also contain blank space at the end of the file if the game is smaller than the eMMC chip鈥檚 capacity. XCI-Cutter XCI-Cutter XCI-Cutter - A tool to remove unused space from XCI-DumpsYou can remove this extra space with a tool such as XCI-Cutter XCI File Format XCI Format Gamecard XCI File Format SpecIf you are interested in the internals of the file format, the site `SwitchBrew` has an excellent page with what each byte represents NSP - Nintendo Submission PackageNSP files is the format for games downloaded from the Switch EShop, similar to .apk on Android or .app on iOS. NSP files are encrypted using master keys and rightsId keys and are encrypted for a specific user 1. Creating NSP FilesThe recommended way of creating NSP files is to use the NX Dump Tool homebrew available on GitHub. NXDumpTool - Dump your Games to NSPThe recommended way of creating NSP files is to use the NX Dump Tool available on GitHub Even although NSP is the format for Eshop games the application NX Dump Tool allows you to dump cartridges as NSP files. Archive File FormatsThese files store part of the game and are normally included inside other file formats. NCA - Nintendo Content ArchivesNCA files are compressed archives (think zip) that contain game data, normally multiple NCA files can be extracted from a single XCI or NSP file. There are multiple types of NCA file depending on what they contain: EXEFS - Executable file system (code) ROMFS - Read Only file system (data) PFS0 - P??? File system (data) EXEFS (Executable filesystem partition)ExeFS stands for Executable filesystem and is part of the largest Nintendo Content Archive (NCA) file for a game. It is a file system that contains Nintendo Switch executables known as NSO鈥檚 2. There are a few files contains in the executable filesystem that we will cover in this section. If you want to mod a game to change the actual behaviour (executable code) then this is the where you start, there are also multiple ways to apply an ExeFS mod which will be covered in another section. CNMT (Content Meta Data) (*.cnmt.nca)CNMT files are small meta data files that are inside an XCI or NSP archive. CNMT CNMT CNMT File Format SpecIf you are interested in the internals of the file format, the site `SwitchBrew` has an excellent page with what each byte represents EXEFS File FormatsThis section covers the game code which is all stored in the executable Filesystem partition or EXEFS. NPDM (*.npdm)The NPDM file contains information about the game for example the title and services that the game is allowed to access. Nintendo Switch Object (NSO) FilesNSO files are compiled Nintendo Switch executable code and can only be run if they are in the EXEFS partition of the game. These are compile from source files, normally from the official Nintendo Switch Software Development Kit. rtld (Runtime Link editor NSO executable)Basically the runtime Link editor executable is the first code that runs when a game is started. Its job is to manage the other executable code modules (NSO files) in memory. RTLD RTLD Runtime Link Editor (RTLD)If you are interested in the internals of how the RTLD works, the site `SwitchBrew` has an excellent page main (NSO executable)There is a main NSO executable file in the EXEFS partition, this as its name suggests is where the main game code was compiled. sdk (NSO executable)There is a sdk executable in the EXEFS portion, this is presumably the build of the official Nintendo Switch SDK. subsdk鈥檚 (nso executable)It is still unclear what the sub SDK executable are, my guess would be they are dynamic libraries of code. It is possible these are optional libraries bundled with the official Switch SDK. For example: subsdk0 subsdk1 Game Engine File Formats Archive Files SZS (ARMS & Mario Kart)The SZS file format is used in many of Nintendos first party games on the switch such as ARMS and actually comes from the Wii version of Mario Kart. It is an archive file that compresses game assets such as Models and Textures 3. SZS SZS SZS ModifierChadSoft has created a tool to modify SZS files aptly called the SZS Modifier Referencesdifferences between nsp and xci files? GBAtemp.net - The Independent Video Game Community聽↩聽↩2 RELEASE - ExeFSManager - A Simple ExeFS Manager GBAtemp.net - The Independent Video Game Community聽↩ CTools & SZS Modifier聽↩ |
CopyRight 2018-2019 实验室设备网 版权所有 |